package br.edu.utfpr.view.action;

import java.util.ArrayList;
import java.util.List;

import br.edu.utfpr.app.beans.Cliente;
import br.edu.utfpr.app.dto.ClienteDTO;
import br.edu.utfpr.controller.ControladorClienteImpl;
import br.edu.utfpr.controller.interfaces.ControladorCliente;
import br.edu.utfpr.controller.validator.ClienteValidator;
import br.edu.utfpr.controller.validator.RetornoValidacao;
import br.edu.utfpr.dao.DaoClienteImpl;
import br.edu.utfpr.dao.interfaces.DaoCliente;


public class ActionCliente extends Action<Cliente>{

	DaoCliente dao = new DaoClienteImpl();
	ControladorCliente c = new ControladorClienteImpl(dao, new ClienteValidator());
	
	@Override
	public RetornoValidacao salvar(Cliente pojo) {
		return c.save(pojo);
	}

	@Override
	public RetornoValidacao excluir(Cliente pojo) {
		try {
			c.excluir(pojo);
			return new RetornoValidacao();
		} catch (Exception e) {
			return new RetornoValidacao("Ocorreu um erro ao excluir o cliente");
		}
	}

	@Override
	public List<ClienteDTO> listar() {
		
		List<ClienteDTO> lista = new ArrayList<ClienteDTO>();
		
		for (Cliente cliente : c.list()) {
			lista.add(cliente.parseDTO());
		}
		
		return lista;
	}
	
}
